\section{Statistiques}

La section Statistiques implémente 5 requêtes de consultation.\\
\begin{itemize}

\item Moyenne des commentaires donnés par chaque adhérent pour une news:
\begin{verbatim}
//selectionne toutes les news
$reponse = $bdd->query('SELECT TITRE, ID_NEWS 
                        FROM NEWS 
                        ORDER BY ID_NEWS ASC');

//compte le nombre total d'adherents
$adherent = $bdd->query('SELECT COUNT(*) AS NBRE_ADH
                         FROM ADHERENT');

//nombre de coms par news
$comms = $bdd->query("SELECT COUNT(*) AS NBRE
                      FROM COMMENTAIRE C
                      WHERE C.ID_NEWS = '$news[1]'
                      GROUP BY C.ID_NEWS
                      ORDER BY C.ID_NEWS ASC");

$coms = $comms->fetch();

//calcule de la moyenne
(float)$coms[0]/$adh[0]
\end{verbatim}
Ici, on utilise la fonction SQL \texttt{count()} pour compter les commentaires et les news.

\item Moyenne des notes données par les participants à un évènement:
\begin{verbatim}
$eevent = $bdd->query('SELECT ID_EVENT, NOM_EVENT
                       FROM EVENEMENT
                       ORDER BY ID_EVENT ASC');

...

     while ($event = $eevent->fetch()) {

         $aadh = $bdd->query("SELECT AVG(NOTE_ADHERENT)
                              FROM PARTICIP_ADHERENT
                              WHERE ID_EVENT = '$event[0]'");

         $eexte = $bdd->query("SELECT AVG(NOTE_EXTE)
                               FROM PARTICIP_EXTE
                               WHERE ID_EVENT = '$event[0]'");

...

//moyenne
(float)($adh[0]+$exte[0])/2
\end{verbatim}
Ici, la fonction \texttt{avg()} pour "average" calcule la moyenne sur une colonne de la table concernée.

\item Classement des évènements selon la note donnée par les participants:
\begin{verbatim}
$eevent = $bdd->query('SELECT E.ID_EVENT, E.NOM_EVENT, AVG(P.NOTE_ADHERENT) AS MOYENNE
                       FROM EVENEMENT E, PARTICIP_ADHERENT P
                       WHERE E.ID_EVENT = P.ID_EVENT
                       GROUP BY E.ID_EVENT
                       ORDER BY MOYENNE DESC');
\end{verbatim}
Le principe ici est de regrouper les résultats par évènement, de calculer la moyenne sur la colonne contenant les notes et de classer les résultats de manière décroissante.

\item Classement des adhérents participant le plus aux évènements:
\begin{verbatim}
$aadh = $bdd->query("SELECT A.LOGIN, COUNT(*) AS NBRE
                     FROM ADHERENT A, PARTICIP_ADHERENT P
                     WHERE A.ID_ADHERENT = P.ID_ADHERENT 
                     GROUP BY P.ID_ADHERENT
                     ORDER BY NBRE DESC");
\end{verbatim}
Le principe est ici le même que précédemment à ceci près que l'on compte au lieu de faire la moyenne.

\item Classement des finances des associations à une date donnée:
\begin{verbatim}
$aadh = $bdd->query("SELECT A.NOM_ASSOC, SUM(F.MONTANT) AS FINANCE
                     FROM ASSOCIATION A, FINANCEMENT F
                     WHERE A.ID_ASSOC = F.ID_ASSOC 
                     GROUP BY F.ID_ASSOC
                     ORDER BY FINANCE DESC");
\end{verbatim}
A noter que cette requête comptabilise uniquement les financements et non les cotisations.
\end{itemize}
